/*
 * Copyright© 2003-2019 浙江汇信科技有限公司, All Rights Reserved.
 */
package com.icinfo.cloud.provider.punish.common.publicity.service;

import com.icinfo.cloud.provider.punish.common.publicity.dto.*;
import com.icinfo.cloud.provider.punish.common.publicity.model.CasePublicityModifyRecord;
import com.icinfo.cloud.provider.punish.common.publicity.vo.CasePublicityListVo;
import com.icinfo.cloud.provider.punish.common.publicity.vo.CasePublicityModifyRecordDetailVo;
import com.icinfo.cloud.provider.punish.common.publicity.vo.CasePublicityModifyRecordVo;
import com.icinfo.framework.core.service.BaseService;

import java.util.List;

/**
 * 描述: 公示记录表 case_publicity_modify_record 对应的Service接口.<br>
 *
 * @author framework generator
 * @date 2022年10月13日
 */
public interface ICasePublicityModifyRecordService extends BaseService {
    /**
     * 描述：获取公示管理列表
     *
     * @param pageRequest 页面请求
     * @return {@link List<CasePublicityListVo> }
     * @author shishengyao
     * @date 2022/10/13
     */
    List<CasePublicityListVo> getPublicityPageList(CasePublicityListPageRequest pageRequest);

    /**
     * 描述：获取公示变更列表
     *
     * @param pageRequest 页面请求
     * @return {@link List<CasePublicityModifyRecordVo> }
     * @author shishengyao
     * @date 2022/10/13
     */
    List<CasePublicityModifyRecordVo> getPublicityModifyPageList(CasePublicityModifyRecordPageRequest pageRequest);

    /**
     * 描述：获取公示详情
     *
     * @param queryDto 查询dto
     * @return {@link List<CasePublicityModifyRecordDetailVo> }
     * @author shishengyao
     * @date 2022/10/13
     */
    List<CasePublicityModifyRecordDetailVo> getCasePublicityRecordDetail(CasePublicityModifyRecordDetailQueryDto queryDto);


    /**
     * 描述：删除公示
     *
     * @param id id
     * @return int
     * @author shishengyao
     * @date 2022/10/20
     */
    int removeCasePublicityModifyRecordDetail(String id);

    /**
     * 描述：删除公示
     *
     * @param documentId 文档id
     * @return int
     * @author shishengyao
     * @date 2022/10/22
     */
    int removeCasePublicityModifyRecordDetailByDocumentId(String documentId);
    /**
     * 描述：根据案件id和partyId查询公示变更记录
     *
     * @param caseId  案件id
     * @param partyId 当事人id
     * @return {@link List<CasePublicityModifyRecord> }
     * @author shishengyao
     * @date 2022/10/14
     */
    List<CasePublicityModifyRecord> getPublicityModifyListByCaseIdAndPartyId(String caseId,String partyId);

    /**
     * 描述：更正公示审批通过操作
     *
     * @param caseId      案件id
     * @param partyId     方id
     * @param operateType 操作类型
     * @return {@link String }
     * @author shishengyao
     * @date 2022/10/22
     */
   CasePublicityModifyRecord  getLastPublicityModifyRecord(String caseId, String partyId,String operateType);
    /**
     * 描述：根据案件id和partyId查询公示变更记录
     *
     * @param documentId 文书id
     * @return {@link CasePublicityModifyRecord }
     * @author shishengyao
     * @date 2022/10/20
     */
    CasePublicityModifyRecord getPublicityModifyListByDocumentId(String documentId);

    /**
     * 描述：保存公示变更信息
     *
     * @param saveDto 保存dto
     * @return int
     * @author shishengyao
     * @date 2022/10/14
     */
    int saveCasePublicityModifyRecord(PublicityModifyRecordSaveDto saveDto);

    /**
     * 描述：更正公示审批通过操作
     *
     * @param caseId           案件id
     * @param documentKindCode 文件类型代码
     * @param documentId       文档id
     * @return {@link String }
     * @author shishengyao
     * @date 2022/10/22
     */
    String dealPublicityModifyAfterFinishApproval(String caseId, String documentKindCode,String documentId);
}
